//类和对象的课后习题
import java.util.Scanner;

public class TestDemo {
    String s1;//如果我将其当成成员变量
    public static void main(String[] args) {
//        String s;
//        System.out.println(s);//局部变量未初始化
        TestDemo testDemo = new TestDemo();
        System.out.println(testDemo.s1);
        //默认初始值
    }



    public static void main1(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNextInt()) {
            int x = scanner.nextInt();
            int y = scanner.nextInt();
            Data data = new Data(x, y);
            System.out.println(data.getX() + data.getY());
        }
        scanner.close();
    }

}
class Data {

    private int x;
    private int y;

    public Data(int x, int y) {
        this.x = x;
        this.y = y;
    }
    public void setX(int x) {
        this.x = x;
    }

    public int getX() {
        return x;
    }

    public void setY(int y) {
        this.y = y;
    }

    public int getY() {
        return y;
    }
}

 class HasStatic {// 1
    private static int x = 100;// 2
    public static void main(String args[]) {// 3
        HasStatic hsl = new HasStatic();// 4
        hsl.x++;// 5
        HasStatic hs2 = new HasStatic();// 6
        hs2.x++;// 7
        hsl = new HasStatic();// 8
        hsl.x++;// 9
        HasStatic.x--;// 10
        System.out.println(" x=" + x);// 11
    }
    //静态成员变量跟对象的实例化没有关系，并且它是类变量，只有一份。因此所有对x的操作针对的都是同一份。
}

 class Pvf{
    static boolean Paddy;
    public static void main(String args[]){
        System.out.println(Pvf.Paddy);
    }
}
class TestDemo2 {
    //课后的习题错误点总结：
    //import可以静态导入，即import static,即在某些包的类的导入的时候可以简化写法，比如数学中的math
    //import不可以直接导入指定的包，import java.util这么些是错误的，我们要导入指定的类比如：import.java.util.Arrays;
    /**
     * package NowCoder;
     * class Test {
     * 	public static void hello() {
     * 	    System.out.println("hello");
     *        }
     * }
     * public class MyApplication {
     * 	public static void main(String[] args) {
     * 		//TODO Auto-generated method stub
     * 		Test test=null;
     * 		test.hello();
     *    }
     * }
     */
    //静态方法不依赖于对象，当一个引用指向了null就是代表了不指向了任何对象

    //hello方法是一个静态方法，调用静态方法不需要创建实例对象。
    //此时的 Test test=null; 表示test这个引用不指向任何对象。所以此处可以正常访问。
    //但是我们需要牢记，静态方法的正确访问方式应该是用过类型来访问。即：Test.hello();这个是重点的
    //成员变量没有赋初值的时候，会有默认的初始值。boolean 默认都是false，char默认'\u0000'
    //其余基本数据类型均是默认为0，引用类型默认均为null

    //static只能修饰于成员变量，不能修饰于局部变量，
    //所以它一般用于类中，静态变量就是类变量
}